package com.jzo2o.market.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.market.model.domain.Activity;
import com.jzo2o.market.model.dto.request.ActivityQueryForPageReqDTO;
import com.jzo2o.market.model.dto.request.ActivitySaveReqDTO;
import com.jzo2o.market.model.dto.response.ActivityInfoResDTO;
import com.jzo2o.market.model.dto.response.ActivityQueryForPageResDTO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author itcast
 * @since 2023-09-16
 */
public interface IActivityService extends IService<Activity> {

    /**
     * 新增和修改优惠卷活动
     * @param dto
     */
    void creatAndUpdateCoupon(ActivitySaveReqDTO dto);

    /**
     * 分页查询优惠卷活动
     * @param dto
     * @return
     */
    ActivityQueryForPageResDTO queryPageActivity(ActivityQueryForPageReqDTO dto);
    /**
     * 撤销优惠卷活动
     * @param id 活动id
     */
    void revoke(Long id);

    /**
     * 预热活动列表
     */
    void Preheat();

    /**
     * 用户端抢券活动列表两种状态的分页查询
     * @param tabType
     * @return
     */
    List<ActivityInfoResDTO> queryForPage(Integer tabType);

    /**
     * 获取真实状态
     * @param x
     * @return
     */
    public Integer getRealStatus(ActivityInfoResDTO x);

    /**
     * 扣减库存 减1
     * @param activityId
     * @return
     */
    Boolean decrStock(Long activityId);
}
